package ar.edu.utn.frgp.banco.servlets;


import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import ar.edu.utn.frgp.banco.domain.Cliente;
import ar.edu.utn.frgp.banco.domain.DetallePago;
import ar.edu.utn.frgp.banco.domain.Prestamo;
import ar.edu.utn.frgp.banco.service.RecursoServicePagoPrestamos;
import ar.edu.utn.frgp.banco.service.RecursoServicePrestamos;
import ar.edu.utn.frgp.banco.service.impl.RecursoServicePagoPrestamosImpl;
import ar.edu.utn.frgp.banco.service.impl.RecursoServicePrestamosImpl;
import ar.edu.utn.frgp.banco.servlets.scope.DetalleCuotaPrestamoBean;

public class Prestamo9DetallarPrestamoServlet extends GenericServlet {
	private static final long serialVersionUID = 1L;

    /**
     * Default constructor. 
     */
    public Prestamo9DetallarPrestamoServlet() {
        // TODO Auto-generated constructor stub
    }

	@Override
	public void realizarAccion(HttpServletRequest req, HttpServletResponse resp) throws Exception {
		
		Cliente elCliente = (Cliente)req.getSession().getAttribute("cliente");
		String cmbprestamos = (String)req.getParameter("cmbPrestamos");
		
		Prestamo prestamo = new Prestamo();
		DetallePago detalle = new DetallePago();
		
		int nroPrestamo = Integer.parseInt(cmbprestamos);
		double montototal;
		double valorcuota;
		int nroCuotasPagas;
		int cuotaspagas;
		int restapagar;
		int cuenta;
		double totalApagar;
		RecursoServicePrestamos servicePrestamos = new RecursoServicePrestamosImpl();
		RecursoServicePagoPrestamos cantCuotasPagas = new RecursoServicePagoPrestamosImpl();
		
		prestamo = servicePrestamos.listarPrestamosPorCodigo(nroPrestamo); //con estos datos armar la cuota
		List<DetallePago> detalles = new ArrayList<DetallePago>();
	
		montototal = prestamo.getMonto() + (prestamo.getMonto()*prestamo.getInteres()/100);
		valorcuota = montototal/prestamo.getCantidadcuotas();
		//esto me trae el numero de cuotas registradas como pagas
		
		nroCuotasPagas = cantCuotasPagas.obtenerNroCuotasPagas(prestamo.getIdprestamo());
		
		cuotaspagas = nroCuotasPagas+1;
		restapagar = prestamo.getCantidadcuotas()- nroCuotasPagas;
		cuenta = prestamo.getCuenta();
		
		totalApagar=restapagar*valorcuota;
		
		detalle.cargarDetalle(cuotaspagas,valorcuota,restapagar,totalApagar,cuenta);
		
		detalles.add(detalle);
		
		
		req.getSession().setAttribute("cliente", elCliente); // le mando todo lo que le mande la primera vez
		
		DetalleCuotaPrestamoBean beandetalle = new DetalleCuotaPrestamoBean();
		beandetalle.setDetalles(detalles);
		req.setAttribute("beandetalle", beandetalle);
		
		String jsp = "";
		
		jsp = "Prestamo9VistaDetallePagoLiquidacionPrestamo.jsp";
	
		req.getRequestDispatcher(jsp).forward(req, resp);

	}
}

